With the advent of networked computers, distributed computing, replicated data storage, mobile computing, and especially the use of multiple computing devices by a single user, there is a problem of managing multiple duplicates of the same object, such as a document or an image. For example, a user may take pictures using a digital camera and then transfer some of the pictures to a mobile computing device, such as a notebook PC. Later, some of the pictures may be transferred to a desktop PC, edited and added to a catalog. This process may be repeated with multiple pictures. In the process, the cataloging software may create thumbnail representations of some of the pictures. A few of the pictures may find their way to a Web site. At every stage, an image may be edited, reformatted, or combined with other images. If at some other time the user wants to consolidate the multiple, somewhat different copies of these pictures, the user is confronted with virtually an impossible task. That is because it is quite difficult to remember or track how those images relate to each other, and very difficult to analyze the differences between similar images, either automatically or by human intervention. If the user wants to maintain duplicate copies of the “image album” both on the home PC and mobile PC, and the user occasionally applies changes to either one, it is next to impossible to propagate those changes from one location to another. These difficulties also arise with respect to other multimedia objects such as audio and video data.
While tools exist to automatically synchronize versions of text documents, no such tools are available for other multimedia object comparison and merging. In addition, the nature of multimedia objects such as image data is much more complicated than pure text, making the problem much more complex to solve.
There are cameras available that save the filename as picture 0004, the fourth picture taken in the history of this camera, and the next image will be saved as picture 0005, so there is some level of a unique identifier. However, these identifiers are not unique to all the cameras in the world. For every such camera, the fourth picture taken will be saved as picture 0004.
Therefore, there is a need for a method and apparatus for synchronizing multiple versions of multimedia objects by assigning multimedia objects unique identifiers, respectively, and creating a history graph having nodes that store unique identifiers and whose vectors describe the relationship between the multimedia objects. In addition, there is also a need for a method and apparatus for synchronizing multiple versions of multimedia objects by adding metadata associated with each unique identifier describing the transformations applied to the corresponding multimedia object.